package com.united.ucts.common.plugin.feign;

import com.united.frame.common.module.result.Result;
import com.united.frame.plugin.security.Oauth2Token;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.Map;

/**
 * 认证服务远程调用
 * 自定义的FeignClient抽象service接口的实现类,用于定义一个从Auth服务获取登录授权信息
 * 需要注意,增加@FeignClient 注解后,需要在当前微服务的启动类上增加 @EnableFeignClients 注解
 *
 * @author hudan
 * @version 1.0
 * @filename AuthService.java
 * @copyright www.united.com
 * @date 2021/8/18
 */
@FeignClient("ucts-auth")
public interface AuthService {

    /**
     * 调用 基于spring-security的oauth2服务,获取认证信息
     *
     * @param parameters oauth2登录认证请求参数
     * @return 认证结果
     */
    @PostMapping(value = "/oauth/token")
    Result<Oauth2Token> getAccessToken(@RequestParam Map<String, String> parameters);
}